/*
 * =====================================================================================
 *
 *       Filename:  cl_lock.hxx
 *
 *    Description: abstract lock root class 
 *
 *        Version:  1.0
 *        Created:  10/08/2010 08:52:00 PM
 *       Revision:  none
 *       Compiler:  gcc
 *
 *         Author:  Ken Chen (Ziliang), zlchen.ken@gmail.com
 *        Company:  EMC
 *
 * =====================================================================================
 */

#ifndef _CL_LOCK_HXX_
#define _CL_LOCK_HXX_

namespace neo
{
class CLLock
{
public:
	virtual ~CLLock();
  int lock(void);
	int tryLock(void);
	int unLock(void);

private:
  virtual int doLock(void) = 0;
	virtual int doTryLock(void) = 0;
	virtual int doUnLock(void) = 0;
};
} // neo

#endif //_CL_LOCK_HXX_

